package com.test.project.system.wenjuan.service.impl;

import java.util.List;

import com.test.common.exception.BusinessException;
import com.test.common.utils.DateUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.test.project.system.wenjuan.mapper.TWenjuanMapper;
import com.test.project.system.pingwei.domain.TPingwei;
import com.test.project.system.pingwei.mapper.TPingweiMapper;
import com.test.project.system.pingwei.service.ITPingweiService;
import com.test.project.system.wenjuan.domain.TWenjuan;
import com.test.project.system.wenjuan.service.ITWenjuanService;
import com.test.common.utils.security.ShiroUtils;
import com.test.common.utils.text.Convert;

/**
 * 竞赛管理Service业务层处理
 * 
 * @author test
 * @date 2023-12-05
 */
@Service
public class TWenjuanServiceImpl implements ITWenjuanService 
{
    @Autowired
    private TWenjuanMapper tWenjuanMapper;
    
    @Autowired
    private ITPingweiService pingweiService;

    /**
     * 查询竞赛管理
     * 
     * @param id 竞赛管理ID
     * @return 竞赛管理
     */
    @Override
    public TWenjuan selectTWenjuanById(Long id)
    {
        return tWenjuanMapper.selectTWenjuanById(id);
    }

    /**
     * 查询竞赛管理列表
     * 
     * @param tWenjuan 竞赛管理
     * @return 竞赛管理
     */
    @Override
    public List<TWenjuan> selectTWenjuanList(TWenjuan tWenjuan)
    {
        return tWenjuanMapper.selectTWenjuanList(tWenjuan);
    }

    /**
     * 新增竞赛管理
     * 
     * @param tWenjuan 竞赛管理
     * @return 结果
     */
    @Override
    public int insertTWenjuan(TWenjuan tWenjuan)
    {
        
        
        
        
        tWenjuan.setCreateTime(DateUtils.getNowDate());
        
        tWenjuan.setCreateBy(ShiroUtils.getLoginName());
        
        return tWenjuanMapper.insertTWenjuan(tWenjuan);
    }

    /**
     * 修改竞赛管理
     * 
     * @param tWenjuan 竞赛管理
     * @return 结果
     */
    @Override
    public int updateTWenjuan(TWenjuan tWenjuan)
    {
    	TWenjuan old = tWenjuanMapper.selectTWenjuanById(tWenjuan.getId());
    	if(old.getStatus().equals("0") && "1".equals(tWenjuan.getStatus())) {
    		TPingwei p = new TPingwei();
    		p.setPid(tWenjuan.getId());
    		List<TPingwei> selectTPingweiList = pingweiService.selectTPingweiList(p);
    		if(selectTPingweiList.size()<3) {
    			throw new BusinessException("评委人数不能小于3人！");
    		}
    		
    	}
        return tWenjuanMapper.updateTWenjuan(tWenjuan);
    }

    /**
     * 删除竞赛管理对象
     * 
     * @param ids 需要删除的数据ID
     * @return 结果
     */
    @Override
    public int deleteTWenjuanByIds(String ids)
    {
        return tWenjuanMapper.deleteTWenjuanByIds(Convert.toStrArray(ids));
    }

    /**
     * 删除竞赛管理信息
     * 
     * @param id 竞赛管理ID
     * @return 结果
     */
    @Override
    public int deleteTWenjuanById(Long id)
    {
        return tWenjuanMapper.deleteTWenjuanById(id);
    }
}
